package sort.test3_27.insertSort;
import java.util.Arrays;

public class ShellSort {
        public void shellsort(){
//            int zl=s.length/2;//设置增量为数组长度的1/2
//            for (;zl>0;zl=zl/2){//增量依次减少为1/2
//                for (int i=zl;i<s.length;i++){//对相应增量的数组分组进行直接插入排序
//                    int temp=s[i];
//                    int j;
//                    for (j=i-zl;j>=0&&temp<s[j];j-=zl){//注意这里必须将j的初值设置为i-zl，否则数组下标会出界（也就是为负数）
//                        s[j+zl]=s[j];
//                    }
//                    s[j+zl]=temp;
//                }
//            }
//            System.out.println(Arrays.toString(s));//输出排好序的数组
            int[] arrays = new int[] {1,5,2,3,6,9,4,0,1};
            //实现增量的变化
            for(int gap = arrays.length / 2; gap > 0; gap /= 2) {
                for(int i = gap; i < arrays.length; i++) {
                    for(int j = i - gap; j >= 0; j -= gap) {
                        if(arrays[j] > arrays[j + gap]) {
                            int temp = arrays[j];
                            arrays[j] = arrays[j + gap];
                            arrays[j + gap] = temp;
                        }
                    }
                }
            }
            System.out.println(Arrays.toString(arrays));

        }


int a=1;
    public static void main(String[] args) {
//        ShellSort shellSort1 = new ShellSort();
//        shellSort1.shellsort();

    }




    }

